package application

import (
	"ruoyi/domain/entity/common"
	"ruoyi/domain/entity/response"
	"ruoyi/domain/entity/system"
	"ruoyi/domain/repository"
)

type ConfigApp struct {
	config repository.SysConfigRepository
}

var _ ConfigAppInterface = &ConfigApp{}

type ConfigAppInterface interface {
	SelectCaptchaEnabled() bool
	GetConfigInfo(configId interface{}) system.SysConfig
	SelectConfig(config system.SysConfig) system.SysConfig
	SaveConfig(config system.SysConfig) response.Response
	EditConfig(config system.SysConfig) response.Response
	DelConfig(configIds string) response.Response
	DelConfigById(configId int)
	SelectConfigList(params common.SearchTableDataParam, isPage bool) common.TableDataInfo
}

func (c *ConfigApp) SelectCaptchaEnabled() bool {
	return c.config.SelectCaptchaEnabled()
}

func (c *ConfigApp) SelectConfigList(params common.SearchTableDataParam, isPage bool) common.TableDataInfo {
	return c.config.SelectConfigList(params, isPage)
}

func (c *ConfigApp) GetConfigInfo(configId interface{}) system.SysConfig {
	return c.config.GetConfigInfo(configId)
}

func (c *ConfigApp) SelectConfig(config system.SysConfig) system.SysConfig {
	return c.config.SelectConfig(config)
}

func (c *ConfigApp) SaveConfig(config system.SysConfig) response.Response {
	return c.config.SaveConfig(config)
}

func (c *ConfigApp) EditConfig(config system.SysConfig) response.Response {
	return c.config.EditConfig(config)
}

func (c *ConfigApp) DelConfig(configIds string) response.Response {
	return c.config.DelConfig(configIds)
}

func (c *ConfigApp) DelConfigById(configId int) {
	c.config.DelConfigById(configId)
}
